Cloud computing has been proposed as one way to utilize computer resources in recent years. In cloud computing, a user accesses a computer owned by a third party via a network and uses resources of the computer to conduct desired information processing, instead of outfitting a user's personal computer with resources needed for the desired information processing. A cloud system implementing cloud computing provides resources for users as services. It is often the case that a cloud system is implemented as a virtualization system allowing a plurality of virtual computers (sometimes referred to as “virtual machines” or “logic machines”) to be deployed so as to flexibly allocate resources to a number of users.
Cloud computing is sometimes classified into three types of cloud services, private, public, and hybrid, in terms of the degree of resource sharing. In a private cloud, a single organization solely owns the cloud system and users of the organization (for example, users of various departments) use the cloud system, sharing the resources. In a public cloud, a service provider owns the cloud system and a large indefinite number of users use the cloud system via a wide area network. Public cloud services are offered to users, for example, by charging on a pay-as-you-go basis, i.e., charges are proportional to the usage, such as the number of virtual machines used, the amount of allocated resources, or the duration of use, based upon agreement between each user and the service provider. A hybrid cloud is a cloud computing environment where private and public cloud systems cooperate with each other.
In connection with hybrid cloud computing, a load balancer has been proposed which distributes work across internal servers in an enterprise network and cloud servers in a cloud network residing outside the enterprise network. The load balancer transfers requests from users to the internal servers while the loads placed on the internal servers are low, and transfers requests from users to cloud servers only when the loads on the internal servers are high. This helps the enterprise avoid capital expenditure on extra resources to deal with peak processing demand, thus reducing the cost of establishing and maintaining the internal servers. Note that there is also proposed a management server for migrating a virtual machine among a plurality of data centers. The management server calculates the degree of connectivity among a plurality of virtual machines from the volume of communication and the response speed among the virtual machines and selects a virtual machine to be migrated according to the calculated degree of connectivity.
International Publication Pamphlet No. WO 2011/041101
Japanese Laid-open Patent Publication No. 2012-221049
An application of cloud computing is considered herein where virtual machines deployed on system #1 are caused to process one particular business operation, and additional virtual machines are deployed on system #2 when the workloads placed on the virtual machines of system #1 become high to thereby distribute the processing of the particular business operation across the virtual machines in systems #1 and #2. For example, system #1 may be implemented as a private cloud system while system #2 may be implemented as a public cloud system. In this case, in response to an increase in the loads on the virtual machines of system #1, additional virtual machines may be deployed on system #2 in anticipation of reducing the load of each virtual machine.
However, system #1 may also include virtual machines engaging in a different business operation (for example, virtual machines used by a different department within the same company) other than the virtual machines in charge of the particular business operation above. When unused resources in the virtual machines dedicated to the particular business operation have increased, resources allocated to the virtual machines may be reduced by reallocating some of the resources to the virtual machines engaging in the different business operation. In this case, even if one or more virtual machines are added to system #2 for the particular business operation, the loads on the virtual machines in system #1 appear to still remain high. Thus, determining the addition of virtual machines to system #2 based only on the loads on the virtual machines in system #1 may lead to the deployment of an excessive number of virtual machines.